package com.baselibrary.libs.Utils.db.DAO;

import android.content.Context;
import android.support.v4.util.LruCache;

import com.alibaba.fastjson.JSONObject;
import com.baselibrary.libs.Utils.log.LogUtils;
import com.baselibrary.libs.Utils.netUtils.NoHttp.queue.Request_netWork;
import com.baselibrary.libs.Utils.netUtils.NoHttp.queue.Request_netWork_error;
import com.baselibrary.libs.Utils.netUtils.NoHttp.queue.YolandaLinkedQueue;

/**
 * Created by Administrator 于萌萌
 * 创建日期: 11:03 . 2017年03月03日
 * 描述:缓存管理
 * <p>
 * <p>
 * 备注:
 */

public class CacheManage {
    int size;
    //能进能退真正法器
    public LruCache<String,String> mMemoryCache;


    public CacheManage(int size) {
       this.size =size;
        mMemoryCache = new LruCache<>(size);
    }

    public void find(Context mContext, YolandaLinkedQueue<Request_netWork, Request_netWork_error, Integer, JSONObject> queue, Request_netWork request) {
        LogUtils.i("缓存步骤"+"先获取内存中的数据");
        //如果 内存 里面 没有找到 就去数据库找
        boolean cacheMemory = new CacheMemory(mContext,mMemoryCache)
                .getCacheMemory(request, queue);
        //去数据库找
        if (cacheMemory){
            LogUtils.i("缓存步骤"+"如果内存没有我就去数据库去找");
            new CacheDb(mContext)
                    .getDbCache(request, queue);
        }

    }

    public void add(Context mContext, Request_netWork request, JSONObject jsonObject) {
        //如果 内存 里面 没有找到 就去数据库找
        new CacheMemory(mContext,mMemoryCache)
                .addCacheMemory(request, jsonObject);
        //去数据库找
        new CacheDb(mContext)
                    .addDbCache(request, jsonObject);
        }
}
